home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / machserver / 1.098 / lfs / lfs.h < prev    next >
C/C++ Source or Header  |  1991-01-09  |  3KB  |  92 lines

  1. /*
  2.  * lfs.h --
  3.  *
  4.  *    Declarations of data structures and routines of the LFS file system
  5.  *    exported to the rest of the Sprite file system. 
  6.  *
  7.  * Copyright 1989 Regents of the University of California
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software and its documentation for any purpose and without
  10.  * fee is hereby granted, provided that the above copyright
  11.  * notice appear in all copies.  The University of California
  12.  * makes no representations about the suitability of this
  13.  * software for any purpose.  It is provided "as is" without
  14.  * express or implied warranty.
  15.  *
  16.  * $Header: /sprite/src/kernel/lfs/RCS/lfs.h,v 1.4 91/01/09 12:16:31 mendel Exp $ SPRITE (Berkeley)
  17.  */
  18.  
  19. #ifndef _LFS
  20. #define _LFS
  21.  
  22. #include <sprite.h>
  23. #include <fsdm.h>
  24.  
  25. /*
  26.  * Flags controlling file system.
  27.  * LFS_CONTROL_CLEANALL - When cleaning, clean all dirty segments.
  28.  */
  29. #define    LFS_CONTROL_CLEANALL    0x1
  30.  
  31. /* Descriptor management routines. */
  32.  
  33. extern ReturnStatus Lfs_GetNewFileNumber _ARGS_((Fsdm_Domain *domainPtr, 
  34.         int dirFileNum, int *fileNumberPtr));
  35. extern ReturnStatus Lfs_FreeFileNumber _ARGS_((Fsdm_Domain *domainPtr, 
  36.         int fileNumber));
  37. extern ReturnStatus Lfs_FileDescStore _ARGS_((register Fsdm_Domain *domainPtr,
  38.         Fsio_FileIOHandle *handlePtr, int fileNumber, 
  39.         Fsdm_FileDescriptor *fileDescPtr, Boolean forceOut));
  40. extern ReturnStatus Lfs_FileDescFetch _ARGS_((Fsdm_Domain *domainPtr, 
  41.         int fileNumber, Fsdm_FileDescriptor *fileDescPtr));
  42. extern ReturnStatus Lfs_FileDescInit _ARGS_((Fsdm_Domain *domainPtr, 
  43.         int fileNumber, int type, int permissions, int uid, int gid,
  44.         Fsdm_FileDescriptor *fileDescPtr));
  45. /*
  46.  * Startup and shutdown routines. 
  47.  */
  48. extern ReturnStatus Lfs_AttachDisk _ARGS_((Fs_Device *devicePtr, 
  49.             char *localName, int flags, int *domainNumPtr));
  50. extern ReturnStatus Lfs_DetachDisk _ARGS_((Fsdm_Domain *domainPtr));
  51. extern ReturnStatus Lfs_DomainWriteBack _ARGS_((Fsdm_Domain *domainPtr, 
  52.             Boolean shutdown));
  53. extern ReturnStatus Lfs_RereadSummaryInfo _ARGS_((Fsdm_Domain *domainPtr));
  54. extern ReturnStatus Lfs_DomainInfo _ARGS_((Fsdm_Domain *domainPtr, 
  55.             Fs_DomainInfo *domainInfoPtr));
  56. /*
  57.  * File I/O and allocate routines. 
  58.  */
  59. extern ReturnStatus Lfs_FileBlockRead _ARGS_((Fsdm_Domain *domainPtr, 
  60.             register Fsio_FileIOHandle *handlePtr, 
  61.             Fscache_Block *blockPtr));
  62. extern ReturnStatus Lfs_FileBlockWrite _ARGS_((Fsdm_Domain *domainPtr, 
  63.             Fsio_FileIOHandle *handlePtr, Fscache_Block *blockPtr));
  64. extern ReturnStatus Lfs_BlockAllocate _ARGS_((Fsdm_Domain *domainPtr, 
  65.             register Fsio_FileIOHandle *handlePtr, int offset, 
  66.             int numBytes, int flags, int *blockAddrPtr, 
  67.             Boolean *newBlockPtr));
  68. extern ReturnStatus Lfs_FileTrunc _ARGS_((Fsdm_Domain *domainPtr, 
  69.             Fsio_FileIOHandle *handlePtr, 
  70.             int size, Boolean delete));
  71.  
  72. /*
  73.  * Directory routines.
  74.  */
  75. extern ClientData Lfs_DirOpStart _ARGS_((Fsdm_Domain *domainPtr, int opFlags, 
  76.             char *name, int nameLen, int fileNumber, 
  77.             Fsdm_FileDescriptor *fileDescPtr, int dirFileNumber, 
  78.             int dirOffset, Fsdm_FileDescriptor *dirFileDescPtr));
  79. extern void Lfs_DirOpEnd _ARGS_((Fsdm_Domain *domainPtr, ClientData clientData,
  80.             ReturnStatus status, int opFlags, char *name, 
  81.             int nameLen, int fileNumber, 
  82.             Fsdm_FileDescriptor *fileDescPtr, int dirFileNumber, 
  83.             int dirOffset, Fsdm_FileDescriptor *dirFileDescPtr));
  84.  
  85.  
  86. extern void Lfs_Init _ARGS_((void));
  87. extern ReturnStatus Lfs_Command _ARGS_((int command, int bufSize, 
  88.                        Address buffer));
  89.  
  90. #endif /* _LFS */
  91.  
  92.